package com.test.basic50;

import java.util.ArrayList;
import java.util.List;

/**
 * @author RenGaoshuai
 * @date 2024/7/11 16:45
 * @description
 * 题目：打印出所有的"水仙花数"，所谓"水仙花数"是指一个三位数，其各位数字立方和等于该数本身。例如：153是一个"水仙花数"，因为153=1的三次方＋5的三次方＋3的三次方。
 *
 * 程序分析：利用for循环控制100-999个数，每个数分解出个位，十位，百位。
 */
public class Basic03 {

    public static void main(String[] args) {
        int num = 0;
        int n = 101;
        int m = 200;
        for (int i = n; i <= m; i++) {
            if (hasShui(i)) {
                num++;
                System.out.println(i);
            }
        }
        System.out.println("在" + n + "和" + m + "之间，一共:" + num + "个素数");
    }

    private static boolean hasShui(int n) {
        if (n < 0) {
            throw new RuntimeException("非法参数，水仙花数不能为负数");
        }
        if (n == 0 || n == 1) {
            return true;
        }
        return false;

    }

    private static  List<Integer> yu(int m){
        List<Integer> digits = new ArrayList<>();
        // Base case: if number is 0, return an empty list
        if (m == 0) {
            return digits;
        }
        // Recursive case: extract digits from the remaining part of the number
        digits.addAll(yu(m / 10));
        digits.add(m % 10);

        return digits;
    }
}
